package com.richest.api.utils;

import java.util.HashMap;
import java.util.Map;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.alibaba.fastjson.JSONObject;
import com.richest.api.dao.SysConfigMapper;
import com.richest.bean.SysConfigBean;

/**
 * 微信配置信息
 * 
 * @author zhaohongchao 2019年3月25日 上午9:19:40
 * @email 70375739@qq.com
 */
@Component
public class WXAppInfo {
	@Autowired
	private SysConfigMapper sysConfigMapper;

	private final static String key = "weixin";
	private final static String pay_key = "PAY_CONFIG_KEY";
	private static JSONObject param_value = null;
	private static SysConfigMapper mapper;

	@PostConstruct
	public void init() {
		mapper = this.sysConfigMapper;
	}

	private static void initParamsValue() {
		Map<String, Object> params = new HashMap<>();
		params.put("key", key);
		params.put("pay_key", pay_key);
		SysConfigBean sysConfigBean = mapper.queryByPayKey(params);
		if (null != sysConfigBean) {
			param_value = JSONObject.parseObject(sysConfigBean.getParam_value());
		}
	}

	/**
	 * 返回appid
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:35
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getAppid() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("app_id");
		}
		return "";
	}

	/**
	 * 返回appsecret
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:46
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getAppsecret() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("app_secret");
		}
		return "";
	}

	/**
	 * 获取accesstoken的url地址
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:19:57
	 * @email 70375739@qq.com
	 * @return
	 */
	public String getAccess_token_url() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("access_token_url");
		}
		return "";
	}

	public String getTicket_url() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("ticket_url");
		}
		return "";
	}

	/**
	 * 微信支付服务商的商户号
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:26
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getServiceMchId() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("service_mch_id");
		}
		return "";
	}

	/**
	 * 微信支付服务商的API密钥
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:21
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getServiceApiKey() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("service_api_key");
		}
		return "";
	}

	/**
	 * 微信支付通知回调地址
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:14
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getNotifyUrl() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("notify_url");
		}
		return "";
	}

	/**
	 * 是否使用子商户公众号:0-否，1-是
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:07
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getIsSub() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("is_sub");
		}
		return "";
	}

	/**
	 * 子商户公众号ID
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:09:00
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getSubAppId() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("sub_app_id");
		}
		return "";
	}

	/**
	 * 子商户号
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:08:52
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getSubMchId() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("sub_mch_id");
		}
		return "";
	}

	public static String getCreateOrgerUrl() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("create_orger_url");
		}
		return "";
	}

	/**
	 * 微信支付普通商户的API密钥
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:08:43
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getCommonApiKey() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("common_api_key");
		}
		return "";
	}

	/**
	 * 微信退款地址
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:08:35
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getRefundUrl() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("refund_url");
		}
		return "";
	}

	/**
	 * 微信退款通知回调地址
	 * 
	 * @author zhaohongchao 2019年3月25日 上午9:08:35
	 * @email 70375739@qq.com
	 * @return
	 */
	public static String getRefundNotifyUrl() {
		if (null == param_value) {
			initParamsValue();
		}
		if (null != param_value && param_value.size() > 0) {
			return param_value.getString("refund_notify_url");
		}
		return "";
	}

}
